What is @babel/plugin-transform-modules-commonjs?
The @babel/plugin-transform-modules-commonjs npm package is a Babel plugin that transforms ECMAScript modules to CommonJS modules. This is useful for enabling code written using ES6 module syntax to run in environments that only support CommonJS modules, such as older versions of Node.js or browsers without ES6 module support.
What are @babel/plugin-transform-modules-commonjs's main functionalities?
Transform ES6 import statements to CommonJS require
Converts ES6 import statements into CommonJS require calls.
import { square } from './math';
console.log(square(5));
// Transformed code:
var _math = require('./math');
console.log(_math.square(5));
Transform ES6 export statements to CommonJS exports
Converts ES6 named and default export statements into CommonJS module.exports assignments.
export const square = (n) => n * n;
export default square;
// Transformed code:
const square = (n) => n * n;
exports.square = square;
exports.default = square;
Interoperability with Babel's module interop helpers
Ensures compatibility with Babel's interopRequireDefault helper to handle default exports when importing modules.
import square from './math';
console.log(square(5));
// Transformed code with interopRequireDefault helper:
var _math = _interopRequireDefault(require('./math'));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
console.log(_math.default(5));
Other packages similar to @babel/plugin-transform-modules-commonjs
esm
The 'esm' package is a lightweight runtime that allows you to load ES modules in Node.js. It differs from @babel/plugin-transform-modules-commonjs in that it doesn't require a build step and can directly execute ES modules in Node.js.
@rollup/plugin-commonjs
The '@rollup/plugin-commonjs' package is a plugin for Rollup that converts CommonJS modules into ES6 modules that Rollup can then bundle. It serves a similar purpose but is specific to the Rollup bundler, whereas @babel/plugin-transform-modules-commonjs is more general-purpose and can be used with various build tools that support Babel.
babel-plugin-transform-es2015-modules-commonjs
The 'babel-plugin-transform-es2015-modules-commonjs' package is an older Babel plugin that also transforms ES6 modules to CommonJS. It has been superseded by @babel/plugin-transform-modules-commonjs, which is part of the Babel 7 release.
@babel/plugin-transform-modules-commonjs
This plugin transforms ES2015 modules to CommonJS
See our website @babel/plugin-transform-modules-commonjs for more information.
Install
Using npm:
npm install --save-dev @babel/plugin-transform-modules-commonjs
or using yarn:
yarn add @babel/plugin-transform-modules-commonjs --dev